#include using namespace std; typedef long long int uli; const int mx=4e5+10; const int mxl=20; const uli mod=1e9+7; uli fa[mx],fi[mx]; int maxi[mxl][mx]; int mini[mxl][mx]; uli cmb(int n,int k){ return fa[n]*fi[k]%mod*fi[n-k]%mod; } uli fxp(uli b,uli x){ uli a=1; for(;x!=0;b=b*b%mod,x>>=1) if(x&1ll)a=a*b%mod; return a; } int qmax(int l,int r){ int len=32-__builtin_clz(r-l+1)-1; return max(maxi[len][l],maxi[len][r-(1<x){ puts("0"); continue; } --y; uli ans=cmb(x+x-y-2,x-y-1)*uli(y+1)%mod*fxp(x,mod-2)%mod; printf("%lld\n",ans); } return 0; }